www.gusucode.com > 动网论坛Dvbbs v8.3 > 动网论坛Dvbbs v8.3\code\源程序\BokeManage.asp

    <!--#include FILE="conn.asp"-->
<!--#include file="inc/const.asp" -->
<!--#include file="inc/md5.asp"-->
<!--#include file="boke/config.asp"-->
<!--#include file="boke/PostCls.asp"-->
<!--#include file="boke/checkinput.asp"-->
<%
If DvBoke.BokeUserID = 0 or Not DvBoke.IsBokeOwner Then
	DvBoke.ShowCode(14)
	DvBoke.ShowMsg(0)
End If
If Is_Isapi_Rewrite = 0 Then DvBoke.ModHtmlLinked = "boke.asp?"
DvBoke.LoadPage("Manage.xslt")
If Session("BokeManage") = "" Then
	If Request("Action")="Login" Then
		DvBoke.Stats = "验证用户信息"
		DvBoke.Top(0)
		Page_ChkLogin()
	Else
		DvBoke.Stats = "博客管理登陆"
		DvBoke.Nav(0)
		Page_Login()
	End If
Else
	Dim s,t,m
	Dim tStr,tStr_1,sTypeID
	s = LCase(Request.QueryString("s"))
	t = LCase(Request.QueryString("t"))
	m = LCase(Request.QueryString("m"))
	Select Case s
	Case "1"
		Select Case t
		Case "1"
			tStr = "文章"
			tStr_1 = "?s=1&t=1"
			sTypeID = 0
		Case "2"
			tStr = "收藏"
			tStr_1 = "?s=1&t=2"
			sTypeID = 1
		Case "3"
			tStr = "链接"
			tStr_1 = "?s=1&t=3"
			sTypeID = 2
		Case "4"
			tStr = "交易"
			tStr_1 = "?s=1&t=4"
			sTypeID = 3
		Case "5"
			tStr = "相册"
			tStr_1 = "?s=1&t=5"
			sTypeID = 4
		Case Else
			tStr = "文章"
			tStr_1 = "?s=1&t=1"
			sTypeID = 0
		End Select
		DvBoke.Stats = "博客管理 - " & tStr
		DvBoke.Top(0)
		Page_Nav_Left()
		Page_UserInput()
	Case "2"
		tStr = "评论管理"
		DvBoke.Stats = "博客管理 - " & tStr
		DvBoke.Top(0)
		Page_Nav_Left()
		Page_UserPost()
	Case "3"
		tStr = "文件管理"
		DvBoke.Stats = "博客管理 - " & tStr
		DvBoke.Top(0)
		Page_Nav_Left()
		Page_UserFile()
	Case "4"
		tStr = "模板管理"
		DvBoke.Stats = "博客管理 - " & tStr
		DvBoke.Top(0)
		Page_Nav_Left()
		If Request.QueryString("action")="Saveskin" Then
			Page_SaveSkins()
		Else
			Page_SkinSetting()
		End If
	Case "5"
		Select Case t
		Case "1"
			tStr = "个人资料"
		Case "2"
			tStr = "博客密码"
		Case "3"
			tStr = "博客设置"
		Case "4"
			tStr = "关键字设置"
		Case Else
			tStr = "个人资料"
		End Select
		DvBoke.Stats = "博客管理 - 个人配置 - " & tStr
		DvBoke.Top(0)
		Page_Nav_Left()
		Page_UserSetting()
	Case "6"	'数据更新
		Select Case t
			Case "1"
			tStr = "频道更新"
		End Select
		DvBoke.Stats = "博客管理 - 数据更新 - " & tStr
		DvBoke.Top(0)
		Page_Nav_Left()
		Page_Upate()
	Case "7"	'数据统计
		DvBoke.Stats = "博客管理 - 数据更新 - " & tStr
		DvBoke.Top(0)
		Page_Nav_Left()
		Page_Count()
	Case Else
		DvBoke.Stats = "博客管理"
		DvBoke.Top(0)
		Page_Nav_Left()
		Page_Manage()
	End Select
End If
DvBoke.Footer
Dvbbs.PageEnd()
Sub Page_Login()
	Dim PageHtml
	Dim Comeurl,tmpstr
	If Request("f")<>"" Then
		Comeurl=Request("f")
	ElseIf Request.ServerVariables("QUERY_STRING")<>"" Then 
		Comeurl = "BokeManage.asp?" & Request.ServerVariables("QUERY_STRING")
	Else
		Comeurl="BokeManage.asp"
	End If
	PageHtml = DvBoke.Page_Strings(0).text
	PageHtml = Replace(PageHtml,"{$UserMsg}",DvBoke.Page_Strings(1).text)
	PageHtml = Replace(PageHtml,"{$UserName}",DvBoke.UserName)
	PageHtml = Replace(PageHtml,"{$ComeUrl}",Comeurl)
	Dvbbs.LoadTemplates("")
	PageHtml = Replace(PageHtml,"{$Dv_GetCode}",Dvbbs.GetCode)
	Response.Write PageHtml
End Sub

Sub Page_ChkLogin()
	Dim PassWord,f
	'数据验证
	If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2):DvBoke.ShowMsg(0)
	If Not Dvbbs.CodeIsTrue() Then
		DvBoke.ShowCode(7)
		DvBoke.ShowMsg(0)
	End If
	PassWord = Request.Form("PassWord")
	If PassWord = "" Or IsNull(PassWord) Then
		DvBoke.ShowCode(11)
	Else
		Password = Md5(Password,16)
	End If 
	DvBoke.ShowMsg(0)
	f = Request("f")
	If f = "" Or IsNull(f) Then f = "BokeManage.asp"
	Dim Rs
	Set Rs = DvBoke.Execute("Select PassWord From Dv_Boke_User Where UserID = " & DvBoke.UserID)
	If Rs.Eof And Rs.Bof Then
		DvBoke.ShowCode(4)
		DvBoke.ShowMsg(0)
	Else
		If Rs(0)=PassWord Then
			Session("BokeManage") = DvBoke.UserID
			Session.Timeout = 40
			Response.Redirect f
		Else
			DvBoke.ShowCode(15)
			DvBoke.ShowMsg(0)
		End If
	End If
	Rs.Close
	Set Rs=Nothing
End Sub

Sub Page_Nav_Left()
	Response.Write Replace(Replace(DvBoke.Page_Strings(2).text,"{$bokeurl}",DvBoke.ModHtmlLinked),"{$bokename}",DvBoke.BokeName)
	Response.Write DvBoke.Page_Strings(3).text
End Sub

Sub Page_Manage()
	Dim Html,Node,Tempstr
	Html = DvBoke.Page_Strings(4).text
	'------------------
	Set Node = DvBoke.SystemDoc.documentElement.selectSingleNode("/bokesystem/managenews")
	If Node Is Nothing Then
		Tempstr = ""
	Else
		Tempstr = Node.text
	End If
	Html = Replace(Html,"{$sysmessage}",Tempstr)
	'------------------
	Response.Write Html
End Sub

Sub Page_UserInput()
	Dim PageHtml,UserPageInput
	PageHtml = DvBoke.Page_Strings(5).text
	Select Case m
	Case "1"	'发表文章
		Select Case LCase(Request("Action"))
			Case "savepost"
				Post_Save(0)
			Case Else
				UserPageInput = Post_News
		End Select
	Case "2"
		If Request.QueryString("Action") = "Save" Then
			Page_UserInput_Cat_Save()
		ElseIf Request.QueryString("Action") = "Del" Then
			Page_UserInput_Cat_Del()
		Else
			UserPageInput = Page_UserInput_Cat()
		End If
	Case "3"
		If Request.QueryString("Action") = "Del" Then
			UserPageInput = Page_UserInput_mTopic_Del()
		Else
			UserPageInput = Page_UserInput_mTopic()
		End If
	Case Else
		UserPageInput = Page_UserInput_mTopic()
	End Select
	PageHtml = Replace(PageHtml,"{$UserInputInfo}",UserPageInput)
	PageHtml = Replace(PageHtml,"{$UserAction}",tStr)
	PageHtml = Replace(PageHtml,"{$UserAction_1}",tStr_1)
	Response.Write PageHtml
End Sub

Sub Page_UserPost()
	Dim UserPageInput
	If Request.QueryString("Action") = "Del" Then
		UserPageInput = Page_UserInput_mPost_Del()
	Else
		UserPageInput = Page_UserInput_mPost()
	End If
	Response.Write UserPageInput
End Sub

Sub Page_Upate()
	Update_UserCatToXml()
	DvBoke.ShowMsg(0)
End Sub


'添加文章
Function Post_News()
	Dim PageHtml
	Dim Stype
	Dim Cat_Val
	Dim DvBokePost
	Dim Rs
	Stype = t-1
	Set Rs=DvBoke.Execute("Select uCatID From Dv_Boke_UserCat Where UserID = "&DvBoke.BokeUserID&" And uType = " & sType)
	If Rs.Eof And Rs.Bof Then
		Rs.Close:Set Rs=Nothing
		DvBoke.ShowCode(54)
		DvBoke.ShowMsg(2)
		Post_News = Replace(DvBoke.InputShowMsg,"{$t}",sType + 1)
		Exit Function
	End If
	Set DvBokePost = New Cls_DvBoke_Post
	DvBokePost.Action = "?s="&s&"&t="&t&"&m="&m&"&action=savepost"
	DvBokePost.EditMode = "Default"
	DvBokePost.Show_Upload = 1	'允许上传
	DvBokePost.IsTopic = 1
	DvBokePost.sType = Stype
	DvBokePost.PostUserName = DvBoke.BokeUserName
	DvBokePost.JoinTime = FormatDateTime(Now(),1)
	DvBokePost.LoadForm()
	PageHtml = DvBokePost.FormHtml
	Set DvBokePost = Nothing
	Post_News = PageHtml
End Function

'Act 0=保存新帖
Sub Post_Save(Act)
	Dim P_Title,P_SearchKey,P_DDateTime,P_sType,P_sCatID,P_Catid,P_Lock,P_Best,P_PostContent,P_PostTitleNote,P_Weather,P_iWeather
	Dim P_UpFileID,HaveUpFile
	Dim PostID,RootID

	'-----------------------------------------------------------------------------
	'获取表单数据 ----------------------------------------------------------------
	'-----------------------------------------------------------------------------
	P_Title = DvBoke.Checkstr(Trim(Request.Form("Title")))
	P_SearchKey = DvBoke.Checkstr(Trim(Request.Form("SearchKey")))
	P_DDateTime = Trim(Request.Form("DDateTime"))
	P_sType = DvBoke.CheckNumeric(Request.Form("sType"))
	P_sCatID =  DvBoke.CheckNumeric(Request.Form("sCatID"))
	P_Catid =  Request.Form("Catid")
	P_Lock =  DvBoke.CheckNumeric(Request.Form("Lock"))
	P_Best =  DvBoke.CheckNumeric(Request.Form("Best"))
	P_PostContent = CheckAlipay()
	If P_PostContent = "" Then P_PostContent = DvBoke.Checkstr(Request.Form("PostContent"))
	P_PostTitleNote = DvBoke.Checkstr(Request.Form("PostTitleNote"))
	PostID =  DvBoke.CheckNumeric(Request.Form("PostID"))
	RootID =  DvBoke.CheckNumeric(Request.Form("RootID"))
	P_Weather = Request.Form("Weather")

	P_UpFileID = Request.Form("upfilerename")

	If P_UpFileID <>"" Then
		HaveUpFile = 1
		P_UpFileID = Replace(P_UpFileID,"'","")
		P_UpFileID=Replace(P_UpFileID,";","")
		P_UpFileID=Replace(P_UpFileID,"--","")
		P_UpFileID=Replace(P_UpFileID,")","")
		Dim fixid
		fixid=Replace(P_UpFileID," ","")
		fixid=Replace(fixid,",","")
		If Not IsNumeric(fixid) or fixid="" Then HaveUpFile=0
		P_UpFileID=left(P_UpFileID,Len(P_UpFileID)-1)
	Else
		HaveUpFile=0
	End If

	'-----------------------------------------------------------------------------
	'数据验证 --------------------------------------------------------------------
	'-----------------------------------------------------------------------------
	If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2):DvBoke.ShowMsg(0)
	If StrLength(P_Title)>250 or StrLength(P_Title)="" Then
		DvBoke.ShowCode(30)
	End If
	If StrLength(P_SearchKey)>250 Then
		DvBoke.ShowCode(31)
	End If

	If P_DDateTime<>"" and IsDate(P_DDateTime) Then
		P_DDateTime = Cdate(FormatDateTime(P_DDateTime,1)&FormatDateTime(Now(),3))
	Else
		P_DDateTime = Cdate(FormatDateTime(Now(),1)&FormatDateTime(Now(),3))
	End If
	If P_sType < 0 or P_sType > 4 Then
		DvBoke.ShowCode(32)
	End If
	If P_sCatID = -1 Then
		DvBoke.ShowCode(33)
	End If
	If P_Catid = "-1" or P_Catid ="" or not Isnumeric(P_Catid) Then
		DvBoke.ShowCode(34)
	Else
		P_Catid = DvBoke.CheckNumeric(P_Catid)
	End If
	If StrLength(P_PostContent)="" Then
		DvBoke.ShowCode(35)
	Else
		P_PostContent = Replace(P_PostContent,vbNewLine,"")
	End If
	If P_Weather <> "" Then
		P_iWeather = Split(P_Weather,"|")
		If Ubound(P_iWeather) = 1 Then
			P_Weather = DvBoke.CheckNumeric(P_iWeather(1))
		Else
			P_Weather = 0
		End If
	Else
		P_Weather = 0
	End If

	DvBoke.ShowMsg(0)
	If (Not Dvbbs.CodeIsTrue()) And DvBoke.System_Setting(4) = "1" Then
		DvBoke.ShowCode(7)
		DvBoke.ShowMsg(0)
	End If
	'-------------------------------------
	Dim DvCode
	Set DvCode = New DvBoke_UbbCode
		P_PostContent = DvCode.FormatCode(P_PostContent)
	Set DvCode = Nothing
	'-------------------------------------
	Dim Num_T,Num_F,Num_L,Num_P
	Num_T=0
	Num_F=0
	Num_L=0
	Num_P=0
	Select Case P_sType
	Case 0
		Num_T = 1
	Case 1
		Num_F=1
	Case 2
		Num_L=1
	Case 4
		Num_P=1
	End Select
	'-----------------------------------------------------------------------------
	'数据处理 --------------------------------------------------------------------
	'-----------------------------------------------------------------------------
	'TopicID,CatID,sCatID,UserID,UserName,Title,TitleNote,PostTime,Child,Hits,IsView,IsLock,sType,LastPostTime,LastPoster,LastPostID,IsBest,S_Key,Weather

	'数据表[Dv_Boke_Topic]:TopicID=0 ,CatID=1 ,sCatID=2 ,UserID=3 ,UserName=4 ,Title=5 ,TitleNote=6 ,PostTime=7 ,Child=8 ,Hits=9 ,IsView=10 ,IsLock=11 ,sType=12 ,LastPostTime=13 ,LastPoster=14 ,LastPostID=15 ,IsBest=16 ,S_Key=17

	'PostID,CatID,sCatID,ParentID,RootID,UserID,UserName,Title,Content,JoinTime,IP,sType,Weather

	'数据表[Dv_Boke_Post]:PostID=0 ,CatID=1 ,sCatID=2 ,ParentID=3 ,RootID=4 ,UserID=5 ,UserName=6 ,Title=7 ,Content=8 ,JoinTime=9 ,IP=10 ,sType=11
	Dim Rs,Sql
	If Act = 0 Then
		SQL = "INSERT INTO [Dv_Boke_Topic] (CatID,sCatID,UserID,UserName,Title,TitleNote,PostTime,IsLock,sType,LastPostTime,IsBest,S_Key,Weather) Values (" & P_Catid & "," & P_sCatID & "," & DvBoke.BokeUserID & ",'" & DvBoke.BokeUserName & "','" & P_Title & "','" & P_PostTitleNote & "','"  & P_DDateTime & "',"& P_Lock &"," & P_sType & ",'"& P_DDateTime &"',"& P_Best &",'"& P_SearchKey &"',"& P_Weather &")"
		DvBoke.Execute Sql
		RootID = DvBoke.Execute("Select Top 1 TopicID From [Dv_Boke_Topic] order by TopicID desc")(0)
		

		SQL = "INSERT INTO [Dv_Boke_Post] (CatID,sCatID,RootID,UserID,UserName,Title,Content,JoinTime,[IP],sType,IsUpfile,BokeUserID,IsLock) Values (" & P_Catid & "," & P_sCatID & ","& RootID &"," & DvBoke.BokeUserID & ",'" & DvBoke.BokeUserName & "','" & P_Title & "','" & P_PostContent & "','"  & P_DDateTime & "','"& DvBoke.UserIP &"'," & P_sType & "," & HaveUpFile & ","&DvBoke.BokeUserID&","&P_Lock&")"
		DvBoke.Execute Sql
		PostID = DvBoke.Execute("Select Top 1 PostID From [Dv_Boke_Post] order by PostID desc")(0)

		Sql = "Update [Dv_Boke_User] Set TopicNum = TopicNum + "&Num_T&",FavNum=FavNum + "&Num_F&",PhotoNum=PhotoNum+"&Num_P&",TodayNum=TodayNum+1,LastUpTime="&bSqlNowString&" Where UserID="&DvBoke.BokeUserID
		DvBoke.Execute Sql

		Sql = "Update [Dv_Boke_SysCat] Set TopicNum = TopicNum + "&Num_T&",TodayNum=TodayNum+1,LastUpTime="&bSqlNowString&" Where sCatID in ("&P_sCatID&","&DvBoke.BokeNode.getAttribute("syscatid")&")"
		DvBoke.Execute Sql

		Sql = "Update [Dv_Boke_UserCat] Set TopicNum = TopicNum + 1,TodayNum=TodayNum+1,LastUpTime="&bSqlNowString&" Where uCatID="&P_Catid
		DvBoke.Execute Sql

		Sql = "Update [Dv_Boke_System] Set S_TopicNum=S_TopicNum+ "&Num_T&",S_PhotoNum=S_PhotoNum+"&Num_P&",S_FavNum=S_FavNum+ "&Num_F&",S_TodayNum=S_TodayNum+1,S_LastPostTime="&bSqlNowString
		DvBoke.Execute Sql
		''CatID,sType,TopicID,PostID,IsTopic,Title,FileNote,IsLock
		If HaveUpFile = 1 THen
			Sql = "Update Dv_Boke_Upfile Set CatID="&P_Catid&",sType="&P_sType&",TopicID="&RootID&",PostID="&PostID&",IsTopic=0,Title='"&P_Title&"',FileNote='"&P_PostTitleNote&"',IsLock="&P_Lock&" where id in ("&P_UpFileID&")"
			DvBoke.Execute Sql
		End If
		Update_TopicToXml()
		'更新系统XML数据------------
		DvBoke.Update_SysCat P_Catid&","&DvBoke.BokeNode.getAttribute("syscatid"),0,1,Num_T,0,Now()
		DvBoke.Update_System 0,1,Num_F,Num_P,Num_T,0,Now()
		DvBoke.SaveSystemCache()
		'更新系统XML数据------------

		DvBoke.ShowCode(37)
		DvBoke.ShowMsg(0)
	End If

	If Not (Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cachebokebody") Is Nothing) Then
		Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cachebokebody").text = ""
	End If
	If Not (Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cacheboketopic") Is Nothing) Then
		Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cacheboketopic").text = ""
	End If

End Sub

'用户栏目设置
Function Page_UserInput_Cat()
	Dim PageHtml,PageHtml_Str,Rs
	PageHtml = DvBoke.Page_Strings(12).text
	If Request("uCatID")<>"" And IsNumeric(Request("uCatID")) Then
		Set Rs = DvBoke.Execute("Select * From Dv_Boke_UserCat Where uCatID = " & Request("uCatID") & " And uType = " & sTypeID & " And UserID = " & DvBoke.UserID)
		If Not (Rs.Eof And Rs.Bof) Then
			PageHtml = Replace(PageHtml,"{$uCatID}",Rs("uCatID"))
			PageHtml = Replace(PageHtml,"{$uCatTitle}",Rs("uCatTitle"))
			PageHtml = Replace(PageHtml,"{$uCatNote}",Rs("uCatNote"))
			If Rs("IsView")=1 Then
				PageHtml = Replace(PageHtml,"{$IsView}","checked")
			Else
				PageHtml = Replace(PageHtml,"{$IsView}","")
			End If
			PageHtml = Replace(PageHtml,"{$uType}",Rs("uType"))
		End If
		Rs.Close
		Set Rs = Nothing
	End If
	PageHtml = Replace(PageHtml,"{$uCatID}","0")
	PageHtml = Replace(PageHtml,"{$uCatTitle}","")
	PageHtml = Replace(PageHtml,"{$uCatNote}","")
	PageHtml = Replace(PageHtml,"{$IsView}","checked")
	PageHtml = Replace(PageHtml,"{$uType}",sTypeID)
	Set Rs = DvBoke.Execute("Select * From Dv_Boke_UserCat Where UserID = " & DvBoke.UserID & " And uType = " & sTypeID & " Order By uCatID")
	If Not (Rs.Eof And Rs.Bof) Then
		Do While Not Rs.Eof
			PageHtml_Str = PageHtml_Str & "<ul>"
			PageHtml_Str = PageHtml_Str & "<li class=""Set3"">"&Rs("uCatTitle")&"</li>"
			'PageHtml_Str = PageHtml_Str & "<li class=""Set3"">"&DvBoke.Cat_Type(Rs("utype"))&"</li>"
			PageHtml_Str = PageHtml_Str & "<li class=""Set5"">"&Left(Rs("uCatNote"),35)&"</li>"
			PageHtml_Str = PageHtml_Str & "<li class=""Set3""><a href="""&tStr_1&"&m=2&uCatID="&Rs("uCatID")&""">编辑</a>&nbsp;&nbsp;<a href=""#"" onclick=""alertreadme('您确定删除栏目 "&Rs("uCatTitle")&" 吗?','"&tStr_1&"&m=2&Action=Del&uCatID="&Rs("uCatID")&"')"">删除</a></li>"
			PageHtml_Str = PageHtml_Str & "</ul>"
		Rs.MoveNext
		Loop
	End If
	Rs.Close
	Set Rs=Nothing
	PageHtml = Replace(PageHtml,"{$InfoList}",PageHtml_Str)
	Page_UserInput_Cat = PageHtml
End Function

'保存用户栏目设置
Sub Page_UserInput_Cat_Save()
	Dim uCatID,uCatTitle,uCatNote,IsView,sType
	uCatID = Request.Form("uCatID")
	uCatTitle = DvBoke.CheckStr(Request.Form("uCatTitle"))
	uCatNote = DvBoke.CheckStr(Request.Form("uCatNote"))
	IsView = Request.Form("IsView")
	sType = Request.Form("sType")

	If uCatID = "" Or Not IsNumeric(uCatID) Then uCatID = 0
	uCatID = cCur(uCatID)
	If IsView = "" Or Not IsNumeric(IsView) Then IsView = 0
	IsView = Cint(IsView)
	If sType = "" Or Not IsNumeric(sType) Then sType = 0
	sType = Cint(sType)
	If uCatTitle = "" Then
		DvBoke.ShowCode(25)
	Else
		uCatTitle = Server.HtmlEncode(uCatTitle)
	End If
	If uCatNote <> "" Then uCatNote = Server.HtmlEncode(uCatNote)
	DvBoke.ShowMsg(0)
	If uCatID > 0 Then
		DvBoke.Execute("Update Dv_Boke_UserCat Set uCatTitle = '"&uCatTitle&"',uCatNote = '"&uCatNote&"',IsView = "&IsView&",uType = "&sType&" Where uCatID = " & uCatID & " And UserID = " & DvBoke.UserID)
	Else
		DvBoke.Execute("Insert Into Dv_Boke_UserCat (uCatTitle,uCatNote,IsView,UserID,uType) Values ('"&uCatTitle&"','"&uCatNote&"',"&IsView&","&DvBoke.UserID&","&sType&")")
	End If
	Update_UserCatToXml()
	DvBoke.ShowCode(24)
	DvBoke.ShowMsg(0)
End Sub

'更新用户栏目数据
Sub Update_UserCatToXml()
	'uCatID=0 ,UserID=1 ,uCatTitle=2 ,uCatNote=3 ,OpenTime=4 ,uType=5 ,TopicNum=6 ,PostNum=7 ,TodayNum=8 ,IsView=9,LastUpTime=10
	Dim Rs,Sql
	Dim XmlDoc,NodeList,Node
	Sql = "Select ucatid,userid,ucattitle,ucatnote,opentime,utype,topicnum,postnum,todaynum,isview,lastuptime From Dv_Boke_UserCat where UserID = " & DvBoke.UserID &" order by utype,uCatID"
	Set Rs = DvBoke.Execute(LCase(Sql))
	If Not (Rs.Eof And Rs.Bof) Then
		Set XmlDoc=Dvbbs.CreateXmlDoc("msxml2.FreeThreadedDOMDocument")
		Rs.Save XmlDoc,1
		XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
		Set NodeList=XmlDoc.documentElement.selectNodes("rs:data/z:row")
		For Each Node in NodeList
			Node.attributes.getNamedItem("opentime").text = Rs("opentime")
			Node.attributes.getNamedItem("lastuptime").text = Rs("lastuptime")
			Rs.MoveNext
		Next
		DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(XmlDoc.documentElement.xml,"'","''")&"' where UserID="&DvBoke.UserID)
		Set DvBoke.BokeCat = XmlDoc
		Set XmlDoc = Nothing
	End If
	Rs.Close
	Set Rs=Nothing
	
	Update_TopicToXml()
	Update_LinkToXml()
	Update_PhotoToXml()
	Update_PostToXml()
	Update_KeyWordToXml()
	DvBoke.ShowCode(27)
End Sub
'更新首页主题数据
Sub Update_TopicToXml()
	Dim Node,XmlDoc,NodeList,ChildNode,BokeBody
	Dim DvCode
	Set DvCode = New DvBoke_UbbCode
	Set Node = DvBoke.BokeCat.selectNodes("xml/boketopic")
	If Not (Node Is Nothing) Then
		For Each NodeList in Node
			DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
		Next
	End If
	Set Node=DvBoke.BokeCat.createNode(1,"boketopic","")
	Set XmlDoc=Dvbbs.CreateXmlDoc("msxml2.FreeThreadedDOMDocument")
	If Not IsNumeric(DvBoke.BokeSetting(6)) Then DvBoke.BokeSetting(6) = "10"
	Dim Rs,Sql
	Sql = "Select Top "&DvBoke.BokeSetting(6)&" TopicID,CatID,sCatID,UserID,UserName,Title,TitleNote,PostTime,Child,Hits,IsView,IsLock,sType,LastPostTime,IsBest,S_Key,Weather From [Dv_Boke_Topic] Where UserID="&DvBoke.BokeUserID&" and sType <>2 order by PostTime desc"
	Set Rs = DvBoke.Execute(LCase(Sql))
	If Not Rs.Eof Then
		Rs.Save XmlDoc,1
		XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
		Set ChildNode = XmlDoc.documentElement.selectNodes("rs:data/z:row")
		For Each NodeList in ChildNode
			If Rs("TitleNote")="" Or IsNull(Rs("TitleNote")) Then
				BokeBody = DvBoke.Execute("Select Content From Dv_Boke_Post Where ParentID=0 and Rootid="&Rs(0))(0)
				If Len(BokeBody) > 250 Then
					BokeBody = SplitLines(BokeBody,DvBoke.BokeSetting(2))
				End If
			Else
				BokeBody = Rs("TitleNote")
			End If
			BokeBody = DvCode.UbbCode(BokeBody) & "...<br/>[<a href=""boke.asp?"&DvBoke.BokeName&".showtopic."&Rs("TopicID")&".html"">阅读全文</a>]"
			NodeList.attributes.getNamedItem("titlenote").text = BokeBody
			NodeList.attributes.getNamedItem("posttime").text = Rs("PostTime")
			NodeList.attributes.getNamedItem("lastposttime").text = Rs("LastPostTime")
			Rs.MoveNext
		Next
		Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
		Node.appendChild(ChildNode)
	End If
	Rs.Close
	Set Rs = Nothing
	DvBoke.BokeCat.documentElement.appendChild(Node)
	DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.BokeUserID)
End Sub


'更新首页评论数据
Sub Update_PostToXml()
	Dim Node,XmlDoc,NodeList,ChildNode
	Set Node = DvBoke.BokeCat.selectNodes("xml/bokepost")
	If Not (Node Is Nothing) Then
		For Each NodeList in Node
			DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
		Next
	End If
	Set Node=DvBoke.BokeCat.createNode(1,"bokepost","")
	Set XmlDoc=Dvbbs.CreateXmlDoc("msxml2.FreeThreadedDOMDocument")
	If Not IsNumeric(DvBoke.BokeSetting(3)) Then DvBoke.BokeSetting(3) = "10"
	Dim Rs,Sql
	Sql = "Select Top "&DvBoke.BokeSetting(3)&" PostID,CatID,sCatID,ParentID,RootID,UserID,UserName,Title,Content,JoinTime,IP,sType From [Dv_Boke_Post] Where  BokeUserID="&DvBoke.BokeUserID&" and ParentID>0 and sType in (0,3,4) order by JoinTime desc"
	Set Rs = DvBoke.Execute(LCase(Sql))
	If Not Rs.Eof Then
		Rs.Save XmlDoc,1
		XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
		Set ChildNode = XmlDoc.documentElement.selectNodes("rs:data/z:row")
		For Each NodeList in ChildNode
			NodeList.attributes.getNamedItem("jointime").text = Rs("JoinTime")
			NodeList.attributes.getNamedItem("content").text = Left(Rs("content")&"",50)
			Rs.MoveNext
		Next
		Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
		Node.appendChild(ChildNode)
	End If
	Rs.Close
	Set Rs = Nothing
	DvBoke.BokeCat.documentElement.appendChild(Node)
	DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.BokeUserID)
End Sub

'更新首页链接数据
Sub Update_LinkToXml()
	Dim Nums
	Dim Node,XmlDoc,NodeList,ChildNode
	Set Node = DvBoke.BokeCat.selectNodes("xml/bokelink")
	If Not (Node Is Nothing) Then
		For Each NodeList in Node
			DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
		Next
	End If
	Set Node=DvBoke.BokeCat.createNode(1,"bokelink","")
	Set XmlDoc=Dvbbs.CreateXmlDoc("msxml2.FreeThreadedDOMDocument")
	'If Not IsNumeric(DvBoke.BokeSetting(6)) Then DvBoke.BokeSetting(6) = "10"
	Nums = 5
	Dim Rs,Sql
	Sql = "Select Top "&Nums&" TopicID,CatID,sCatID,UserID,UserName,Title,TitleNote,PostTime,Child,Hits,IsView,IsLock,sType,LastPostTime,IsBest,S_Key,Weather,Title as Content From [Dv_Boke_Topic] Where UserID="&DvBoke.BokeUserID&" and sType = 2 and IsLock<3 order by LastPostTime desc"
	Set Rs = DvBoke.Execute(LCase(Sql))
	If Not Rs.Eof Then
		Rs.Save XmlDoc,1
		XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
		Set ChildNode = XmlDoc.documentElement.selectNodes("rs:data/z:row")
		For Each NodeList in ChildNode
			NodeList.attributes.getNamedItem("content").text = DvBoke.Execute("Select Content From Dv_Boke_Post Where ParentID=0 and Rootid="&Rs(0))(0)
			NodeList.attributes.getNamedItem("posttime").text = Rs("PostTime")
			NodeList.attributes.getNamedItem("lastposttime").text = Rs("LastPostTime")
			Rs.MoveNext
		Next
		Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
		Node.appendChild(ChildNode)
	End If
	Rs.Close
	Set Rs = Nothing
	DvBoke.BokeCat.documentElement.appendChild(Node)
	DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.UserID)
End Sub

'更新首页图片数据
Sub Update_PhotoToXml()
	Dim Nums
	Dim Node,XmlDoc,NodeList,ChildNode
	Set Node = DvBoke.BokeCat.selectNodes("xml/bokephoto")
	If Not (Node Is Nothing) Then
		For Each NodeList in Node
			DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
		Next
	End If
	Set Node=DvBoke.BokeCat.createNode(1,"bokephoto","")
	Set XmlDoc=Dvbbs.CreateXmlDoc("msxml2.FreeThreadedDOMDocument")
	'If Not IsNumeric(DvBoke.BokeSetting(6)) Then DvBoke.BokeSetting(6) = "10"
	Nums = 5
	Dim Rs,Sql
	Sql = "Select Top "&Nums&" ID,BokeUserID,UserName,CatID,sType,TopicID,PostID,IsTopic,Title,FileName,FileType,FileSize,FileNote,DownNum,ViewNum,DateAndTime,PreviewImage,IsLock From Dv_Boke_Upfile where sType=4 and IsTopic=0 and IsLock<3 and BokeUserID="&DvBoke.BokeUserID&" order by DateAndTime Desc "
	Set Rs = DvBoke.Execute(LCase(Sql))
	If Not Rs.Eof Then
		Rs.Save XmlDoc,1
		XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
		Set ChildNode = XmlDoc.documentElement.selectNodes("rs:data/z:row")
		For Each NodeList in ChildNode
			NodeList.attributes.getNamedItem("dateandtime").text = Rs("DateAndTime")
			Rs.MoveNext
		Next
		Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
		Node.appendChild(ChildNode)
	End If
	Rs.Close
	Set Rs = Nothing
	DvBoke.BokeCat.documentElement.appendChild(Node)
	DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.BokeUserID)
End Sub

'更新关键字转换数据
Sub Update_KeyWordToXml()
	Dim Node,XmlDoc,NodeList,ChildNode
	Set Node = DvBoke.BokeCat.selectNodes("xml/bokekeyword")
	If Not (Node Is Nothing) Then
		For Each NodeList in Node
			DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
		Next
	End If
	Set Node=DvBoke.BokeCat.createNode(1,"bokekeyword","")
	Set XmlDoc=Dvbbs.CreateXmlDoc("msxml2.FreeThreadedDOMDocument")
	Dim Rs,Sql
	Sql = "Select KeyID,KeyWord,nKeyWord,LinkUrl,LinkTitle,NewWindows From Dv_Boke_KeyWord where  UserID="&DvBoke.UserID
	Set Rs = DvBoke.Execute(LCase(Sql))
	If Not Rs.Eof Then
		Rs.Save XmlDoc,1
		XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
		Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
		Node.appendChild(ChildNode)
	End If
	Rs.Close
	Set Rs = Nothing
	DvBoke.BokeCat.documentElement.appendChild(Node)
	DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.UserID)
End Sub

Sub Page_UserInput_Cat_Del()
	Dim uCatID
	uCatID = Request("uCatID")
	If uCatID = "" Or Not IsNumeric(uCatID) Then uCatID = 0
	uCatID = cCur(uCatID)
	DvBoke.Execute("Delete From Dv_Boke_UserCat Where uCatID = "&uCatID&" And UserID = " & DvBoke.BokeUserID)
	DvBoke.ShowCode(26)
	DvBoke.ShowMsg(0)
End Sub

Function Page_UserInput_mTopic()
	Dim PageHtml,KeyWord,iKeyWord
	PageHtml = DvBoke.Page_Strings(13).text
	Dim Rs,Sql
	Dim Page,MaxRows,Endpage,CountNum,PageSearch
	CountNum = 0
	Endpage = 0
	MaxRows = DvBoke.System_Setting(7)
	Page = Request("Page")
	If IsNumeric(Page) = 0 or Page="" Then Page=1
	Page = Clng(Page)
	KeyWord = Request("KeyWord")
	If KeyWord <> "" Then
		KeyWord = DvBoke.CheckStr(KeyWord)
		iKeyWord = " And (Title Like '%"&KeyWord&"%' Or Content Like '%"&KeyWord&"%')"
	End If

	'字段排序 TopicID=0 ,CatID=1 ,sCatID=2 ,UserID=3 ,UserName=4 ,Title=5 ,Content=6 ,JoinTime=7 ,sType=8

	Sql = "Select RootID,CatID,sCatID,UserID,UserName,Title,Content,JoinTime,sType,PostID From Dv_Boke_Post Where UserID = "&DvBoke.UserID&" And sType = "&sTypeID&" And ParentID = 0 "&iKeyWord&" order by PostID Desc"
	Set Rs = Dvbbs.iCreateObject ("adodb.recordset")
	If Dv_Boke_InDvbbsData = 1 Then
		Rs.Open Sql,Boke_Conn,1,1
	Else
		Rs.Open Sql,Conn,1,1
	End If
	DvBoke.SqlQueryNum = DvBoke.SqlQueryNum + 1
	If Not Rs.eof Then
		CountNum = Rs.RecordCount
		If CountNum Mod MaxRows=0 Then
			Endpage = CountNum \ MaxRows
		Else
			Endpage = CountNum \ MaxRows+1
		End If
		Rs.MoveFirst
		If Page > Endpage Then Page = Endpage
		If Page < 1 Then Page = 1
		If Page >1 Then 				
			Rs.Move (Page-1) * MaxRows
		End if
		SQL=Rs.GetRows(MaxRows)
	Else
		DvBoke.ShowCode(48)
		DvBoke.ShowMsg(2)
	End If
	Rs.close:Set Rs = Nothing
	Dim i,Temp,Temp1
	If DvBoke.InputShowMsg = "" Then
		For i=0 To Ubound(SQL,2)
		Temp1 = DvBoke.Page_Strings(21).text
		Temp1 = Replace(Temp1,"{$EditID}",Sql(0,i))
		Temp1 = Replace(Temp1,"{$topicid}",Sql(0,i))
		Temp1 = Replace(Temp1,"{$postid}",Sql(9,i))
		If strLength(Sql(5,i)) > 24 Then Sql(5,i) = CutStr(Sql(5,i),24) & "..."
		Temp1 = Replace(Temp1,"{$Topic}",Sql(5,i))
		Temp1 = Replace(Temp1,"{$DateTime}",FormatDateTime(Sql(7,i),2) & " " & FormatDateTime(Sql(7,i),4))
		If Sql(1,i)=0 Then
			Temp1 = Replace(Temp1,"{$cat}","未归类")
		Else
			Temp1 = Replace(Temp1,"{$cat}",DvBoke.ChannelTitle(Sql(1,i)))
		End If
		Temp = Temp & Temp1
		Next
	Else
		Temp = DvBoke.InputShowMsg
	End If

	PageHtml = Replace(PageHtml,"{$InfoList}",Temp)
	PageHtml = Replace(PageHtml,"{$Page}",Page)
	PageHtml = Replace(PageHtml,"{$MaxRows}",MaxRows)
	PageHtml = Replace(PageHtml,"{$CountNum}",CountNum)
	PageSearch = "KeyWord="&KeyWord&"&s=1&t="&sTypeID&"&m=3"
	PageHtml = Replace(PageHtml,"{$PageSearch}",PageSearch)
	If Is_Isapi_Rewrite = 0 Then DvBoke.ModHtmlLinked = "boke.asp?"
	PageHtml = Replace(PageHtml,"{$bokeurl}",DvBoke.ModHtmlLinked)
	PageHtml = Replace(PageHtml,"{$bokename}",DvBoke.BokeName)
	PageHtml = Replace(PageHtml,"{$KeyWord}",KeyWord)
	PageHtml = Replace(PageHtml,"{$t}",sTypeID)
	
	Temp = ""
	Set Rs=DvBoke.Execute("Select * From Dv_Boke_UserCat Where UserID = " & DvBoke.UserID)
	If Not (Rs.Eof And Rs.Bof) Then
		Do While Not Rs.Eof
			Temp = Temp & "<Option value="""&Rs("uCatID")&""">"&Server.HtmlEncode(Rs("uCatTitle")&"")&"</Option>"
		Rs.MoveNext
		Loop
		PageHtml = Replace(PageHtml,"{$uCatList}",Temp)
	Else
		PageHtml = Replace(PageHtml,"{$uCatList}","")
	End If
	Rs.Close:Set Rs=Nothing
	Page_UserInput_mTopic = PageHtml

End Function

Function Page_UserInput_mTopic_Del()
	Dim TopicID,iTopic,i,Rs,Sql,tRs,PostNum,tPostNum,TopicNum,uCatID,sTypeID_a
	Dim Num_T,Num_F,Num_L,Num_P
	Num_T=0
	Num_F=0
	Num_L=0
	Num_P=0
	TopicID = Request("TopicID")
	iTopic = Request("iTopic")
	uCatID = Request("uCatID")
	If TopicID = "" Or iTopic = "" Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	If Not IsNumeric(iTopic) Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	iTopic = Cint(iTopic)
	If iTopic <> 0 And iTopic <> 1 Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	If uCatID = "" Or Not IsNumeric(uCatID) Then uCatID = 0
	uCatID = cCur(uCatID)
	TopicID = Replace(TopicID," ","")
	TopicID = Split(TopicID,",")
	'检测目标栏目是否合法
	If uCatID = -1 And iTopic = 1 Then
		DvBoke.ShowCode(49)
		DvBoke.ShowMsg(2)
		Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	If uCatID > 0 Then
		Set Rs=DvBoke.Execute("Select * From Dv_Boke_UserCat Where UserID = "&DvBoke.UserID&" And uCatID = " & uCatID)
		If Rs.Eof And Rs.Bof Then
			Rs.Close:Set Rs=Nothing
			DvBoke.ShowCode(49)
			DvBoke.ShowMsg(2)
			Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
			Exit Function
		Else
			sTypeID_a = Rs("uType")
		End If
		Rs.Close:Set Rs=Nothing
	End If
	
	For i = 0 To Ubound(TopicID)
		If IsNumeric(TopicID(i)) Then
			Select Case iTopic
			Case 0
				Set Rs=DvBoke.Execute("Select * From Dv_Boke_Topic Where UserID = "&DvBoke.UserID&" And TopicID = " & TopicID(i))
				If Not (Rs.Eof And Rs.Bof) Then
					TopicNum = 0
					If DateDiff("d",Rs("PostTime"),Now()) = 0 Then TopicNum = 1
					Select Case Rs("sType")
					Case 0
						Num_T = 1
					Case 1
						Num_F = 1
					Case 2
						Num_L = 1
					Case 4
						Num_P = 1
					End Select
					'删除包括其评论
					Set tRs=DvBoke.Execute("Select * From Dv_Boke_Post Where RootID = " & TopicID(i))
					PostNum = 0
					tPostNum = 0
					Do While Not tRs.Eof
						PostNum = PostNum + 1
						If DateDiff("d",tRs("JoinTime"),Now()) = 0 Then tPostNum = tPostNum + 1
						'上传文件清理
						If tRs("IsUpfile")=1 Then DvBoke.SysDeleteFile(tRs("PostID"))
					tRs.MoveNext
					Loop
					PostNum = PostNum - 1
					tRs.Close:Set tRs=Nothing
					TopicNum = TopicNum + tPostNum
					DvBoke.Execute("Delete From Dv_Boke_Post Where RootID = " & TopicID(i))
					'更新系统数据
					DvBoke.Execute("Update [Dv_Boke_SysCat] Set TopicNum = TopicNum - 1,PostNum = PostNum - "&PostNum&",TodayNum = TodayNum - "&TopicNum&" Where sCatID in ("&Rs("sCatID")&","&DvBoke.BokeNode.getAttribute("syscatid")&")")
					
					DvBoke.Execute("Update [Dv_Boke_System] Set S_TopicNum=S_TopicNum - "&Num_T&",S_PostNum=S_PostNum - "&PostNum&",S_PhotoNum=S_PhotoNum - "&Num_P&",S_FavNum=S_FavNum - "&Num_F&",S_TodayNum=S_TodayNum - "&TopicNum)
					'更新用户总数据
					DvBoke.Execute("Update [Dv_Boke_User] Set TopicNum = TopicNum - "&Num_T&",PostNum = PostNum - "&PostNum&",FavNum=FavNum - "&Num_F&",PhotoNum=PhotoNum - "&Num_P&",TodayNum=TodayNum - "&TopicNum&" Where UserID="&DvBoke.BokeUserID)
					'更新用户栏目数据
					DvBoke.Execute("Update [Dv_Boke_UserCat] Set TopicNum = TopicNum - 1,PostNum = PostNum - "&PostNum&",TodayNum=TodayNum - "&TopicNum&" Where uCatID="&Rs("CatID"))
					'删除主题
					DvBoke.Execute("Delete From Dv_Boke_Topic Where TopicID = " & TopicID(i))
					Num_T=0:Num_F=0:Num_L=0:Num_P=0
				End If
				Rs.Close:Set Rs=Nothing
			Case 1
				Set Rs=DvBoke.Execute("Select * From Dv_Boke_Topic Where UserID = "&DvBoke.UserID&" And TopicID = " & TopicID(i))
				If Not (Rs.Eof And Rs.Bof) Then
					TopicNum = 0
					If DateDiff("d",Rs("PostTime"),Now()) = 0 Then TopicNum = 1
					Select Case Rs("sType")
					Case 0
						Num_T = 1
					Case 1
						Num_F = 1
					Case 2
						Num_L = 1
					Case 4
						Num_P = 1
					End Select
					'移动包括其评论
					Set tRs=DvBoke.Execute("Select * From Dv_Boke_Post Where RootID = " & TopicID(i))
					PostNum = 0
					tPostNum = 0
					Do While Not tRs.Eof
						PostNum = PostNum + 1
						If DateDiff("d",tRs("JoinTime"),Now()) = 0 Then tPostNum = tPostNum + 1
						'上传文件移动
						If tRs("IsUpfile")=1 Then DvBoke.Execute("Update Dv_Boke_Upfile Set CatID = "&uCatID&",sType = "&sTypeID_a&" Where PostID = " & tRs("PostID"))
					tRs.MoveNext
					Loop
					PostNum = PostNum - 1
					tRs.Close:Set tRs=Nothing
					TopicNum = TopicNum + tPostNum
					DvBoke.Execute("UpDate Dv_Boke_Post Set CatID = "&uCatID&",sType = "&sTypeID_a&" Where RootID = " & TopicID(i))
					'更新用户栏目数据
					DvBoke.Execute("Update [Dv_Boke_UserCat] Set TopicNum = TopicNum - 1,PostNum = PostNum - "&PostNum&",TodayNum=TodayNum - "&TopicNum&" Where uCatID="&Rs("CatID"))
					DvBoke.Execute("Update [Dv_Boke_UserCat] Set TopicNum = TopicNum + 1,PostNum = PostNum + "&PostNum&",TodayNum=TodayNum + "&TopicNum&" Where uCatID="&uCatID)
					'移动主题
					DvBoke.Execute("Update Dv_Boke_Topic Set CatID = "&uCatID&",sType = "&sTypeID_a&" Where TopicID = " & TopicID(i))
					Num_T=0:Num_F=0:Num_L=0:Num_P=0
				End If
				Rs.Close:Set Rs=Nothing
			End Select
		End If
	Next
	'更新用户首页数据
	Update_TopicToXml()
	DvBoke.LoadSetup(1)
	'更新系统缓存数据
	DvBoke.ShowCode(50)
	DvBoke.ShowMsg(2)
	Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
End Function

Function Page_UserInput_mPost()
	Dim PageHtml,KeyWord,iKeyWord,iTopic
	PageHtml = DvBoke.Page_Strings(22).text
	Dim Rs,Sql
	Dim Page,MaxRows,Endpage,CountNum,PageSearch
	Endpage = 0
	MaxRows = DvBoke.System_Setting(7)
	Page = Request("Page")
	If IsNumeric(Page) = 0 or Page="" Then Page=1
	Page = Clng(Page)
	KeyWord = Request("KeyWord")
	If KeyWord <> "" Then
		KeyWord = DvBoke.CheckStr(KeyWord)
		iKeyWord = " And (Title Like '%"&KeyWord&"%' Or Content Like '%"&KeyWord&"%')"
	End If

	'字段排序 TopicID=0 ,CatID=1 ,sCatID=2 ,UserID=3 ,UserName=4 ,Title=5 ,Content=6 ,JoinTime=7 ,sType=8

	Sql = "Select RootID,CatID,sCatID,UserID,UserName,Title,Content,JoinTime,sType,PostID,Content From Dv_Boke_Post Where UserID = "&DvBoke.UserID&" And (Not ParentID = 0) "&iKeyWord&" order by PostID Desc"
	Set Rs = Dvbbs.iCreateObject ("adodb.recordset")
	If Dv_Boke_InDvbbsData = 1 Then
		Rs.Open Sql,Boke_Conn,1,1
	Else
		Rs.Open Sql,Conn,1,1
	End If
	DvBoke.SqlQueryNum = DvBoke.SqlQueryNum + 1
	If Not Rs.eof Then
		CountNum = Rs.RecordCount
		If CountNum Mod MaxRows=0 Then
			Endpage = CountNum \ MaxRows
		Else
			Endpage = CountNum \ MaxRows+1
		End If
		Rs.MoveFirst
		If Page > Endpage Then Page = Endpage
		If Page < 1 Then Page = 1
		If Page >1 Then 				
			Rs.Move (Page-1) * MaxRows
		End if
		SQL=Rs.GetRows(MaxRows)
	Else
		DvBoke.ShowCode(48)
		DvBoke.ShowMsg(2)
		'Page_UserInput_mTopic = DvBoke.InputShowMsg
		'Exit Function
	End If
	Rs.close:Set Rs = Nothing
	Dim i,Temp,Temp1
	If DvBoke.InputShowMsg = "" Then
		For i=0 To Ubound(SQL,2)
		Temp1 = DvBoke.Page_Strings(23).text
		Temp1 = Replace(Temp1,"{$EditID}",Sql(9,i))
		Temp1 = Replace(Temp1,"{$topicid}",Sql(0,i))
		Temp1 = Replace(Temp1,"{$postid}",Sql(9,i))
		If Sql(5,i) = "" Or IsNull(Sql(5,i)) Then
			If strLength(Sql(10,i)) > 24 Then Sql(10,i) = CutStr(Sql(10,i),24) & "..."
			iTopic = Server.HtmlEncode(Sql(10,i))
		Else
			If strLength(Sql(5,i)) > 24 Then Sql(5,i) = CutStr(Sql(5,i),24) & "..."
			iTopic = Server.HtmlEncode(Sql(5,i))
		End If
		Temp1 = Replace(Temp1,"{$Topic}",iTopic)
		Temp1 = Replace(Temp1,"{$DateTime}",FormatDateTime(Sql(7,i),2) & " " & FormatDateTime(Sql(7,i),4))
		Temp1 = Replace(Temp1,"{$cat}",Sql(4,i))
		Temp = Temp & Temp1
		Next
	Else
		Temp = DvBoke.InputShowMsg
	End If

	PageHtml = Replace(PageHtml,"{$InfoList}",Temp)
	PageHtml = Replace(PageHtml,"{$Page}",Page)
	PageHtml = Replace(PageHtml,"{$MaxRows}",MaxRows)
	PageHtml = Replace(PageHtml,"{$CountNum}",CountNum)
	PageSearch = "KeyWord="&KeyWord&"&s=2"
	PageHtml = Replace(PageHtml,"{$PageSearch}",PageSearch)
	If Is_Isapi_Rewrite = 0 Then DvBoke.ModHtmlLinked = "boke.asp?"
	PageHtml = Replace(PageHtml,"{$bokeurl}",DvBoke.ModHtmlLinked)
	PageHtml = Replace(PageHtml,"{$bokename}",DvBoke.BokeName)
	PageHtml = Replace(PageHtml,"{$KeyWord}",KeyWord)
	PageHtml = Replace(PageHtml,"{$t}",sTypeID)
	
	Temp = ""
	Set Rs=DvBoke.Execute("Select * From Dv_Boke_UserCat Where UserID = " & DvBoke.UserID)
	If Not (Rs.Eof And Rs.Bof) Then
		Do While Not Rs.Eof
			Temp = Temp & "<Option value="""&Rs("uCatID")&""">"&Server.HtmlEncode(Rs("uCatTitle")&"")&"</Option>"
		Rs.MoveNext
		Loop
		PageHtml = Replace(PageHtml,"{$uCatList}",Temp)
	Else
		PageHtml = Replace(PageHtml,"{$uCatList}","")
	End If
	Rs.Close:Set Rs=Nothing
	Page_UserInput_mPost = PageHtml
End Function

Function Page_UserInput_mPost_Del()
	Dim TopicID,iTopic,i,Rs,Sql,tRs,PostNum,tPostNum,TopicNum
	TopicID = Request("TopicID")
	iTopic = Request("iTopic")
	If TopicID = "" Or iTopic = "" Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserInput_mPost_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	If Not IsNumeric(iTopic) Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserInput_mPost_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	iTopic = Cint(iTopic)
	If iTopic <> 0 Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserInput_mPost_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	TopicID = Replace(TopicID," ","")
	TopicID = Split(TopicID,",")
	
	For i = 0 To Ubound(TopicID)
		If IsNumeric(TopicID(i)) Then
			'删除评论
			Set Rs=DvBoke.Execute("Select * From Dv_Boke_Post Where PostID = " & TopicID(i))
			tPostNum = 0
			If Not (Rs.Eof And Rs.Bof) Then
				If DateDiff("d",Rs("JoinTime"),Now()) = 0 Then tPostNum = 1
				'更新系统数据
				DvBoke.Execute("Update [Dv_Boke_SysCat] Set PostNum = PostNum - 1,TodayNum = TodayNum - "&tPostNum&" Where sCatID in ("&Rs("sCatID")&","&DvBoke.BokeNode.getAttribute("syscatid")&")")


				DvBoke.Execute("Update [Dv_Boke_System] Set S_PostNum = S_PostNum - 1,S_TodayNum = S_TodayNum - "&tPostNum)
				'更新用户总数据
				DvBoke.Execute("Update [Dv_Boke_User] Set PostNum = PostNum - 1,TodayNum=TodayNum - "&tPostNum&" Where UserID="&DvBoke.BokeUserID)
				'更新用户栏目数据
				DvBoke.Execute("Update [Dv_Boke_UserCat] Set PostNum = PostNum - 1,TodayNum=TodayNum - "&tPostNum&" Where uCatID="&Rs("CatID"))
				'上传文件清理
				If Rs("IsUpfile")=1 Then DvBoke.SysDeleteFile(Rs("PostID"))
				'更新主题数据
				DvBoke.Execute("UpDate [Dv_Boke_Topic] Set Child=Child-1 Where TopicID = " & Rs("RootID"))
				DvBoke.Execute("Delete From Dv_Boke_Post Where PostID = " & TopicID(i))
			End If
			Rs.Close:Set Rs=Nothing
		End If
	Next
	'更新用户首页数据
	Update_TopicToXml()
	DvBoke.LoadSetup(1)
	'更新系统缓存数据
	DvBoke.ShowCode(50)
	DvBoke.ShowMsg(0)
	'Page_UserInput_mPost_Del = DvBoke.InputShowMsg
End Function

Sub Page_UserSetting()
	Dim PageHtml,UserPageHtml
	PageHtml = DvBoke.Page_Strings(6).text
	Select Case t
	Case "1"
		If Request.QueryString("Action") = "Save" Then
			Page_UserSetting_Info_Save()
		Else
			UserPageHtml = Page_UserSetting_Info()
		End If
	Case "2"
		If Request.QueryString("Action") = "Save" Then
			Page_UserSetting_Pass_Save()
		Else
			UserPageHtml = Page_UserSetting_Pass()
		End If
	Case "3"
		If Request.QueryString("Action") = "Save" Then
			Page_UserSetting_Set_Save()
		Else
			UserPageHtml = Page_UserSetting_Set()
		End If
	Case "4"
		If Request.QueryString("Action") = "Save" Then
			Page_UserSetting_Key_Save()
		ElseIf Request.QueryString("Action") = "Del" Then
			Page_UserSetting_Key_Del()
		Else
			UserPageHtml = Page_UserSetting_Key()
		End If
	Case Else
		If Request.QueryString("Action") = "Save" Then
			Page_UserSetting_Info_Save()
		Else
			UserPageHtml = Page_UserSetting_Info()
		End If
	End Select
	PageHtml = Replace(PageHtml,"{$UserSettingInfo}",UserPageHtml)
	Response.Write PageHtml
End Sub

Function Page_UserSetting_Info()
	Dim PageHtml
	PageHtml = DvBoke.Page_Strings(7).text
	PageHtml = Replace(PageHtml,"{$BokeName}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("bokename")&""))
	PageHtml = Replace(PageHtml,"{$NickName}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("nickname")&""))
	PageHtml = Replace(PageHtml,"{$BokeTitle}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("boketitle")&""))
	PageHtml = Replace(PageHtml,"{$BokeCTitle}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("bokechildtitle")&""))
	PageHtml = Replace(PageHtml,"{$BokeNote}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("bokenote")&""))
	Page_UserSetting_Info = PageHtml
End Function

Sub Page_UserSetting_Info_Save()
	Dim NickName,BokeTitle,BokeCTitle,BokeNote
	If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2):DvBoke.ShowMsg(0)
	NickName = Request.Form("NickName")
	BokeTitle = Request.Form("BokeTitle")
	BokeCTitle = Request.Form("BokeCTitle")
	BokeNote = Request.Form("BokeNote")

	If NickName = "" or strLength(NickName)>50 or strLength(NickName)<1 Then
		DvBoke.ShowCode(8)
	Else
		NickName = Server.Htmlencode(NickName)
	End If
	If BokeTitle = "" or strLength(BokeTitle)>150 or strLength(BokeTitle)<1 Then
		DvBoke.ShowCode(12)
	Else
		BokeTitle = Server.Htmlencode(BokeTitle)
	End If
	If BokeCTitle = "" or strLength(BokeCTitle)>250 or strLength(BokeCTitle)<1 Then
		DvBoke.ShowCode(12)
	Else
		BokeCTitle = Server.Htmlencode(BokeCTitle)
	End If
	If BokeNote <> "" Then
		If CheckText(BokeNote) = False Then
			DvBoke.ShowCode(9)
		Else
			BokeNote = Server.Htmlencode(BokeNote)
		End If
	End If
	If CheckText(NickName) = False Then DvBoke.ShowCode(9)
	DvBoke.ShowMsg(0)

	Dim Rs,SQL
	Sql  = "Select * From [Dv_Boke_User] Where UserID = " & DvBoke.BokeUserID
	If Not IsObject(Boke_Conn) Then Boke_ConnectionDatabase
	Set Rs=Dvbbs.iCreateObject("Adodb.RecordSet")
	Rs.Open Sql,Boke_Conn,1,3
	If Lcase(Rs("NickName")) <> Lcase(NickName) Then
		'更新主题表
		DvBoke.Execute("Update Dv_Boke_Topic Set UserName = '"&DvBoke.CheckStr(NickName)&"' Where UserID = " & DvBoke.BokeUserID)
		'更新帖子表
		DvBoke.Execute("Update Dv_Boke_Post Set UserName = '"&DvBoke.CheckStr(NickName)&"' Where UserID = " & DvBoke.BokeUserID)
		'更新上传表
		DvBoke.Execute("Update Dv_Boke_Upfile Set UserName = '"&DvBoke.CheckStr(NickName)&"' Where UserID = " & DvBoke.BokeUserID)
	End If
	Rs("NickName") = NickName
	Rs("BokeTitle") = BokeTitle
	Rs("BokeChildTitle") = BokeCTitle
	Rs("BokeNote") = BokeNote
	Rs.Update
	Rs.Close
	Set Rs=Nothing
	'更新用户首页数据
	Update_TopicToXml()
	DvBoke.LoadSetup(1)
	DvBoke.ShowCode(16)
	DvBoke.ShowMsg(0)
End Sub

Function Page_UserSetting_Pass()
	Page_UserSetting_Pass = DvBoke.Page_Strings(8).text
End Function

Sub Page_UserSetting_Pass_Save()
	Dim PassWord,nPassWord,rnPassWord
	If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2):DvBoke.ShowMsg(0)
	PassWord = Request.Form("PassWord")
	nPassWord = Request.Form("nPass")
	rnPassWord = Request.Form("rnPass")

	If PassWord = "" Or nPassWord = "" Or rnPassWord = "" Then
		DvBoke.ShowCode(11)
	End If
	If nPassWord <> rnPassWord Then
		DvBoke.ShowCode(17)
	End If
	nPassWord = MD5(nPassWord,16)
	PassWord = MD5(PassWord,16)
	DvBoke.ShowMsg(0)

	Dim Rs
	Set Rs = DvBoke.Execute("Select PassWord From Dv_Boke_User Where UserID = " & DvBoke.UserID)
	If PassWord <> Rs(0) Then
		DvBoke.ShowCode(15)
		DvBoke.ShowMsg(0)
	End If
	Rs.Close : Set Rs = Nothing
	DvBoke.Execute("Update Dv_Boke_User Set [PassWord]='"&nPassWord&"' Where UserID = " & DvBoke.UserID)
	DvBoke.ShowCode(18)
	DvBoke.ShowMsg(0)
End Sub

Function Page_UserSetting_Set()
	Dim PageHtml,i,Rs,PageHtml_Str
	PageHtml = DvBoke.Page_Strings(9).text
	For i = 0 To 50
		PageHtml = Replace(PageHtml,"{$Setting"&i&"}",DvBoke.BokeSetting(i))
	Next
	Set Rs = DvBoke.Execute("Select * From Dv_Boke_SysCat Where sType = 0 Order By sCatID")
	Do While Not Rs.Eof
		PageHtml_Str = PageHtml_Str & "<Option value="""&Rs("sCatID")&""" "
		If Cint(DvBoke.BokeNode.getAttribute("syscatid")) = Rs("sCatID") Then PageHtml_Str = PageHtml_Str & "selected"
		PageHtml_Str = PageHtml_Str & ">"&Rs("sCatTitle")&"</Option>"
	Rs.MoveNext
	Loop
	Rs.Close
	Set Rs=Nothing
	PageHtml = Replace(PageHtml,"{$CatList}",PageHtml_Str)
	Page_UserSetting_Set = PageHtml
End Function

Sub Page_UserSetting_Set_Save()
	Dim iSetting,BokeSetting,i
	Dim SysCatID
	SysCatID = Request.Form("SysCatID")
	If SysCatID = "" Or Not IsNumeric(SysCatID) Then SysCatID = 1
	SysCatID = Clng(SysCatID)
	For i = 0 To 50
		If Trim(Request.Form("Setting"&i)) = "" Then
			iSetting= 1
		Else
			iSetting = Replace(Trim(Request.Form("Setting"&i)),",","")
		End If
		If i < 12 Then
			If Not IsNumeric(iSetting) Then
				DvBoke.ShowCode(9)
				Exit For
			End If
		End If
		If i = 0 Then
			BokeSetting = iSetting
		Else
			BokeSetting = BokeSetting & "," & iSetting
		End If
	Next
	DvBoke.ShowMsg(0)
	BokeSetting = DvBoke.CheckStr(BokeSetting)
	BokeSetting = Server.HtmlEncode(BokeSetting)
	BokeSetting = Dv_FilterJS(BokeSetting)
	
	'当用户所选系统分类改变时相应更新分类用户数
	If DvBoke.BokeNode.getAttribute("syscatid")<>SysCatID Then
		DvBoke.Execute("Update Dv_Boke_SysCat Set ucatnum = ucatnum - 1 Where scatid = " & DvBoke.BokeNode.getAttribute("syscatid"))
		DvBoke.Execute("Update Dv_Boke_SysCat Set ucatnum = ucatnum + 1 Where scatid = " & SysCatID)

		DvBoke.Update_SysCat DvBoke.BokeNode.getAttribute("syscatid"),-1,0,0,0,Null
		DvBoke.Update_SysCat SysCatID,1,0,0,0,Null
		DvBoke.SaveSystemCache()
	End If

	DvBoke.Execute("Update Dv_Boke_User Set BokeSetting = '"&BokeSetting&"',SysCatID = "&SysCatID&" Where UserID = " & DvBoke.BokeUserID)

	DvBoke.ShowCode(19)
	DvBoke.ShowMsg(0)
End Sub

Function Page_UserSetting_Key()
	Dim PageHtml,PageHtml_Str,Rs
	PageHtml = DvBoke.Page_Strings(10).text
	If Request("KeyID")<>"" And IsNumeric(Request("KeyID")) Then
		Set Rs = DvBoke.Execute("Select * From Dv_Boke_KeyWord Where KeyID = " & Request("KeyID") & " And UserID = " & DvBoke.UserID)
		If Not (Rs.Eof And Rs.Bof) Then
			PageHtml = Replace(PageHtml,"{$KeyID}",Rs("KeyID"))
			PageHtml = Replace(PageHtml,"{$KeyWord}",Rs("KeyWord"))
			PageHtml = Replace(PageHtml,"{$nKeyWord}",Rs("nKeyWord"))
			PageHtml = Replace(PageHtml,"{$LinkUrl}",Rs("LinkUrl") & "")
			If Rs("NewWindows")=1 Then
				PageHtml = Replace(PageHtml,"{$NewWindows}","checked")
			Else
				PageHtml = Replace(PageHtml,"{$NewWindows}","")
			End If
			PageHtml = Replace(PageHtml,"{$LinkTitle}",Rs("LinkTitle") & "")
		End If
		Rs.Close
		Set Rs = Nothing
	End If
	PageHtml = Replace(PageHtml,"{$KeyID}","0")
	PageHtml = Replace(PageHtml,"{$KeyWord}","")
	PageHtml = Replace(PageHtml,"{$nKeyWord}","")
	PageHtml = Replace(PageHtml,"{$LinkUrl}","")
	PageHtml = Replace(PageHtml,"{$NewWindows}","checked")
	PageHtml = Replace(PageHtml,"{$LinkTitle}","")
	Set Rs = DvBoke.Execute("Select * From Dv_Boke_KeyWord Where UserID = " & DvBoke.UserID & " Order By KeyID")
	If Not (Rs.Eof And Rs.Bof) Then
		Do While Not Rs.Eof
			PageHtml_Str = PageHtml_Str & "<ul>"
			PageHtml_Str = PageHtml_Str & "<li class=""Set33"">"&Rs("KeyWord")&"</li>"
			PageHtml_Str = PageHtml_Str & "<li class=""Set33"">"&Rs("nKeyWord")&"</li>"
			PageHtml_Str = PageHtml_Str & "<li class=""Set44""><a href="""&Rs("LinkUrl")&""" target=""_blank"" title="""&Server.HtmlEncode(Rs("LinkTitle")&"")&""">"&Left(Rs("LinkUrl"),25)&"</a></li>"
			PageHtml_Str = PageHtml_Str & "<li class=""Set55""><a href=""?s=5&t=4&KeyID="&Rs("KeyID")&""">编辑</a>&nbsp;&nbsp;<a href=""#"" onclick=""alertreadme('您确定删除关键字 "&Rs("KeyWord")&" 吗?','?s=5&t=4&Action=Del&KeyID="&Rs("KeyID")&"')"">删除</a></li>"
			PageHtml_Str = PageHtml_Str & "</ul>"
		Rs.MoveNext
		Loop
	End If
	Rs.Close
	Set Rs=Nothing
	PageHtml = Replace(PageHtml,"{$KeyWordList}",PageHtml_Str)
	Page_UserSetting_Key = PageHtml
End Function

Sub Page_UserSetting_Key_Save()
	Dim KeyID,KeyWord,nKeyWord,LinkUrl,LinkTitle,NewWindows
	Dim Rs
	KeyID = Request.Form("KeyID")
	KeyWord = Replace(DvBoke.CheckStr(Request.Form("KeyWord")),"|","")
	nKeyWord = Replace(DvBoke.CheckStr(Request.Form("nKeyWord")),"|","")
	LinkUrl = Request.Form("LinkUrl")
	LinkTitle = Request.Form("LinkTitle")
	NewWindows = Request.Form("NewWindows")

	If KeyID = "" Or Not IsNumeric(KeyID) Then KeyID = 0
	KeyID = cCur(KeyID)
	If NewWindows = "" Or Not IsNumeric(NewWindows) Then NewWindows = 0
	NewWindows = Cint(NewWindows)
	If KeyWord = "" Or nKeyWord = "" Then
		DvBoke.ShowCode(20)
	Else
		KeyWord = Server.HtmlEncode(KeyWord)
		nKeyWord = Server.HtmlEncode(nKeyWord)
	End If
	If LinkUrl <> "" Then LinkUrl = DvBoke.CheckStr(Server.HtmlEncode(Dv_FilterJS(LinkUrl)))
	If LinkTitle <> "" Then LinkTitle = DvBoke.CheckStr(Server.HtmlEncode(Dv_FilterJS(LinkTitle)))
	DvBoke.ShowMsg(0)
	If KeyID > 0 Then
		Set Rs = DvBoke.Execute("Select KeyID From Dv_Boke_KeyWord Where (Not KeyID = "&KeyID&") And UserID = "&DvBoke.UserID&" And KeyWord = '"&KeyWord&"'")
		If Not (Rs.Eof And Rs.Bof) Then
			DvBoke.ShowCode(22)
			DvBoke.ShowMsg(0)
		End If
		Rs.Close
		Set Rs = Nothing
		DvBoke.Execute("Update Dv_Boke_KeyWord Set KeyWord = '"&KeyWord&"',nKeyWord = '"&nKeyWord&"',LinkUrl = '"&LinkUrl&"',LinkTitle = '"&LinkTitle&"',NewWindows = "&NewWindows&" Where KeyID = " & KeyID & " And UserID = " & DvBoke.UserID)
	Else
		Set Rs = DvBoke.Execute("Select KeyID From Dv_Boke_KeyWord Where UserID = "&DvBoke.UserID&" And KeyWord = '"&KeyWord&"'")
		If Not (Rs.Eof And Rs.Bof) Then
			DvBoke.ShowCode(22)
			DvBoke.ShowMsg(0)
		End If
		Rs.Close
		Set Rs = Nothing
		DvBoke.Execute("Insert Into Dv_Boke_KeyWord (KeyWord,nKeyWord,LinkUrl,LinkTitle,NewWindows,UserID) Values ('"&KeyWord&"','"&nKeyWord&"','"&LinkUrl&"','"&LinkTitle&"',"&NewWindows&","&DvBoke.UserID&")")
	End If
	DvBoke.ShowCode(21)
	DvBoke.ShowMsg(0)
End Sub

Sub Page_UserSetting_Key_Del()
	Dim KeyID
	KeyID = Request("KeyID")
	If KeyID = "" Or Not IsNumeric(KeyID) Then KeyID = 0
	KeyID = cCur(KeyID)
	DvBoke.Execute("Delete From Dv_Boke_KeyWord Where KeyID = "&KeyID&" And UserID = " & DvBoke.UserID)
	DvBoke.ShowCode(23)
	DvBoke.ShowMsg(0)
End Sub

'风格模板列表
Sub Page_SkinSetting()
	Dim Rs,Sql
	Dim Page,MaxRows,Endpage,CountNum,PageSearch
	Dim PageHtml
		
	PageHtml = DvBoke.Page_Strings(18).text
	Endpage = 0
	MaxRows = 9
	Page = Request("Page")
	If IsNumeric(Page) = 0 or Page="" Then Page=1
	Page = Clng(Page)

	'S_ID=0 ,S_SkinName=1 ,S_Path=2 ,S_ViewPic=3 ,S_Info=4 ,S_Builder=5
	Sql = "Select S_ID,S_SkinName,S_Path,S_ViewPic,S_Info,S_Builder From [Dv_Boke_Skins] "
	'Set Rs = DvBoke.Execute(Sql)
	Set Rs = Dvbbs.iCreateObject ("adodb.recordset")
	If Dv_Boke_InDvbbsData = 1 Then
		Rs.Open Sql,Boke_Conn,1,1
	Else
		Rs.Open Sql,Conn,1,1
	End If
	DvBoke.SqlQueryNum = DvBoke.SqlQueryNum + 1
	If Not Rs.eof Then
		CountNum = Rs.RecordCount
		If CountNum Mod MaxRows=0 Then
			Endpage = CountNum \ MaxRows
		Else
			Endpage = CountNum \ MaxRows+1
		End If
		Rs.MoveFirst
		If Page > Endpage Then Page = Endpage
		If Page < 1 Then Page = 1
		If Page >1 Then 				
			Rs.Move (Page-1) * MaxRows
		End if
		SQL=Rs.GetRows(MaxRows)
	Else
		DvBoke.ShowCode(28)
		DvBoke.ShowMsg(0)
		Exit Sub
	End If
	Rs.close:Set Rs = Nothing
	Dim i,ii,Temp1,Temp2,TempHtml,ViewLogo
	PageSearch = "s=4"

	Temp2 = DvBoke.Page_Strings(20).text

	For i=0 To Ubound(SQL,2)
		Temp1 = DvBoke.Page_Strings(19).text
		If SQL(3,i)<>"" or not IsNull(SQL(3,i)) Then
			ViewLogo = SQL(3,i)
		Else
			ViewLogo = "boke/images/viewskins.png"
		End If
		Temp1 = Replace(Temp1,"{$ViewLogo}",ViewLogo)
		Temp1 = Replace(Temp1,"{$S_Name}",SQL(1,i))
		Temp1 = Replace(Temp1,"{$S_id}",SQL(0,i))

		TempHtml = TempHtml & Temp1

		If ii=3 Then
			TempHtml = TempHtml & Temp2
			ii=0
		Else
			ii=ii+1
		End If
	Next

	PageHtml = Replace(PageHtml,"{$skin_list}",TempHtml)
	PageHtml = Replace(PageHtml,"{$S_id}",DvBoke.BokeNode.getAttribute("skinid"))
	PageHtml = Replace(PageHtml,"{$Page}",Page)
	PageHtml = Replace(PageHtml,"{$MaxRows}",MaxRows)
	PageHtml = Replace(PageHtml,"{$CountNum}",CountNum)
	PageHtml = Replace(PageHtml,"{$PageSearch}",PageSearch)
	Response.Write PageHtml
End Sub

'保存模板风格设置
Sub Page_SaveSkins()
	Dim Skinid
	Skinid = Request.Form("Skinid")
	If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2)
	If DvBoke.CheckNumeric(Skinid) = 0 Then
		DvBoke.ShowCode(4)
	End If
	DvBoke.ShowMsg(0)
	Dim Rs,Sql
	Set Rs = DvBoke.Execute("Select S_ID From Dv_Boke_Skins Where S_ID="&Skinid)
	If Not Rs.Eof Then
		DvBoke.Execute("Update Dv_Boke_User Set Skinid="&Skinid&" where UserID="&DvBoke.UserID)
		DvBoke.ShowCode(29)
	Else
		DvBoke.ShowCode(4)
	End If
	DvBoke.ShowMsg(0)
End Sub

Sub Page_UserFile()
	Dim PageHtml,mStr,KeyWord,iKeyWord,iFileType
	Dim Sql,Rs,TopicHtml,i,Title,ii
	Dim Page,MaxRows,Endpage,CountNum,PageSearch
	Endpage = 0
	MaxRows = Cint(DvBoke.BokeSetting(7))
	'MaxRows = 2
	Page = Request("Page")
	If IsNumeric(Page) = 0 or Page="" Then Page=1
	Page = Clng(Page)
	PageHtml = DvBoke.Page_Strings(24).text
	KeyWord = DvBoke.CheckStr(Request("keyword"))
	If KeyWord <> "" Then iKeyWord = " And (Title Like '%"&KeyWord&"%' Or sFileName Like '%"&KeyWord&"%')"
	Select Case m
	Case "1"
		mStr = "所有"
	Case "2"
		mStr = "图片"
		iFileType = " And FileType = 1"
	Case "3"
		mStr = "压缩"
		iFileType = " And FileType = 5"
	Case "4"
		mStr = "文档"
		iFileType = " And FileType = 6"
	Case "5"
		mStr = "媒体"
		iFileType = " And FileType In (2,3,4)"
	Case Else
		mStr = "所有"
	End Select
	Sql = "Select ID,BokeUserID,UserName,CatID,sType,TopicID,PostID,IsTopic,Title,FileName,FileType,FileSize,FileNote,DownNum,ViewNum,DateAndTime,PreviewImage,IsLock,sFileName From Dv_Boke_Upfile where Userid="&DvBoke.BokeUserID&" "&iFileType&" "&iKeyWord&" order by DateAndTime Desc"
	'Response.Write sql
	PageHtml = Replace(PageHtml,"{$ActionInfo}",mStr)
	PageHtml = Replace(PageHtml,"{$KeyWord}",KeyWord)
	If Request("Action")="Del" Then
		PageHtml = Replace(PageHtml,"{$topiclist}",Page_UserFile_Del())
		Response.Write PageHtml
		Exit Sub
	End If

	Set Rs = Dvbbs.iCreateObject ("adodb.recordset")
	If Dv_Boke_InDvbbsData = 1 Then
		Rs.Open Sql,Boke_Conn,1,1
	Else
		Rs.Open Sql,Conn,1,1
	End If
	DvBoke.SqlQueryNum = DvBoke.SqlQueryNum + 1
	If Not Rs.eof Then
		CountNum = Rs.RecordCount
		If CountNum Mod MaxRows=0 Then
			Endpage = CountNum \ MaxRows
		Else
			Endpage = CountNum \ MaxRows+1
		End If
		Rs.MoveFirst
		If Page > Endpage Then Page = Endpage
		If Page < 1 Then Page = 1
		If Page >1 Then 				
			Rs.Move (Page-1) * MaxRows
		End if
		SQL=Rs.GetRows(MaxRows)
	Else
		DvBoke.ShowCode(48)
		DvBoke.ShowMsg(2)
		TopicHtml = DvBoke.InputShowMsg
	End If
	Rs.close:Set Rs = Nothing

	If TopicHtml = "" Then
		Dim Temp,Temp2
		Temp2 = DvBoke.Page_Strings(27).text
		Dim ViewFile
		If Not IsNumeric(DvBoke.System_Setting(9)) Then
			DvBoke.System_Setting(9) = 3
		Else
			DvBoke.System_Setting(9) = Cint(DvBoke.System_Setting(9))
		End If
		For i=0 To Ubound(SQL,2)
			TopicHtml = DvBoke.Page_Strings(26).text
			Title = Sql(8,i)
			If Len(Title)>150 Then
				Title = Left(Title,150) &"......"
			End If
			If Title = "" Or IsNull(Title) Then
				If Sql(18,i)<>"" Then
					Title = Sql(18,i)
				Else
					Title = Split(Sql(9,i),"/")(2)
				End If
			End If

			ViewFile = Sql(16,i)
			If ViewFile="" or IsNull(ViewFile) Then
				ViewFile = Sql(9,i)
			End If
			ViewFile = DvBoke.System_UpSetting(19) & ViewFile
			If Sql(10,i) <> 1 Then
				ViewFile = "boke/images/info.gif"
			End If
			TopicHtml = Replace(TopicHtml,"{$ViewPhoto}",ViewFile)
			If Sql(17,i) = 4 Then
				Title = "未曾使用"
				TopicHtml = Replace(TopicHtml,"{$topic}",DvBoke.HTMLEncode(Title))
			Else
				If Sql(7,i)=0 Then
					TopicHtml = Replace(TopicHtml,"{$topic}","<a href="""&DvBoke.ModHtmlLinked&DvBoke.BokeName&".showtopic."&Sql(5,i)&".html"" target=""_blank"">" & DvBoke.HTMLEncode(Title) & "</a>")
				ElseIf Sql(7,i)=1 Then
					TopicHtml = Replace(TopicHtml,"{$topic}","<a href="""&DvBoke.ModHtmlLinked&DvBoke.BokeName&".showtopic."&Sql(5,i)&"."&Sql(6,i)&".html"" target=""_blank"">" & DvBoke.HTMLEncode(Title) & "</a>")
				Else
					TopicHtml = Replace(TopicHtml,"{$topic}",DvBoke.HTMLEncode(Title))
				End If
			End If
			TopicHtml = Replace(TopicHtml,"{$PostDate}",FormatDateTime(Sql(15,i),1))
			TopicHtml = Replace(TopicHtml,"{$PostUserName}",Sql(2,i))
			TopicHtml = Replace(TopicHtml,"{$TopicID}",Sql(5,i))
			TopicHtml = Replace(TopicHtml,"{$fileid}",Sql(0,i))
			Temp = Temp & TopicHtml
			If ii >= Cint(DvBoke.System_Setting(9))-1 Then
				Temp = Temp & Temp2
				ii = 0
			Else
				ii = ii+1
			End If
		Next
		Temp = Replace(Temp,"{$width}",Dvboke.System_UpSetting(14))
		Temp = Replace(Temp,"{$height}",Dvboke.System_UpSetting(15))
		PageHtml = Replace(PageHtml,"{$topiclist}",DvBoke.Page_Strings(25).text)
		PageHtml = Replace(PageHtml,"{$photo_list}",Temp)
	Else
		PageHtml = Replace(PageHtml,"{$topiclist}",TopicHtml)
	End If
	PageSearch = "s=3&m="&m&"&keyword="&keyword
	PageHtml = Replace(PageHtml,"{$Page}",Page)
	PageHtml = Replace(PageHtml,"{$MaxRows}",MaxRows)
	PageHtml = Replace(PageHtml,"{$CountNum}",CountNum)
	PageHtml = Replace(PageHtml,"{$PageSearch}",PageSearch)
	PageHtml = Replace(PageHtml,"{$bokename}",DvBoke.BokeName)
	PageHtml = Replace(PageHtml,"{$bokeurl}",DvBoke.ModHtmlLinked)

	Response.Write PageHtml
End Sub

Function Page_UserFile_Del()
	Dim FileID,iTopic,i,Rs,tRs
	Dim PostContent,objFSO,FilePath,ViewFilepath,IsUpfile
	'On Error Resume Next
	Set objFSO = Dvbbs.iCreateObject("Scripting.FileSystemObject")
	FilePath = DvBoke.System_UpSetting(19)
	FileID = Request("fileid")
	iTopic = Request("iTopic")
	If FileID = "" Or iTopic = "" Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserFile_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	If Not IsNumeric(iTopic) Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserFile_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	iTopic = Cint(iTopic)
	If iTopic <> 0 Then
		DvBoke.ShowCode(9)
		DvBoke.ShowMsg(2)
		Page_UserFile_Del = DvBoke.InputShowMsg
		Exit Function
	End If
	FileID = Replace(FileID," ","")
	FileID = Split(FileID,",")
	
	For i = 0 To Ubound(FileID)
		If IsNumeric(FileID(i)) Then
			Set Rs=DvBoke.Execute("Select * From Dv_Boke_Upfile Where BokeUserID = " & DvBoke.BokeUserID & " And ID = " & FileID(i))
			If Not (Rs.Eof And Rs.Bof) Then
				'如关联帖子,则更新相应数据
				If (Rs("IsTopic")=0 Or Rs("IsTopic")=1) And Rs("PostID")>0 Then
					Set tRs=DvBoke.Execute("Select * From Dv_Boke_Post Where PostID=" & Rs("PostID"))
					If Not (tRs.Eof And tRs.Bof) Then
						IsUpfile = 0
						PostContent = tRs("Content")
						PostContent = Replace(PostContent,"[upload="&Split(Rs("FileName"),".")(1)&"]"&Rs("FileName")&"[/upload]","")
						PostContent = DvBoke.CheckStr(PostContent)
						If InStr(PostContent,"[/upload]") > 0 Then IsUpfile = 1
						DvBoke.Execute("Update Dv_Boke_Post Set Content = '" & PostContent & "',IsUpfile="&IsUpfile&" Where PostID = " & Rs("PostID"))
					End If
					tRs.Close:Set tRs=Nothing
				End If
				'删除附件
				If DvBoke.SysObjFso=True Then
					If objFSO.FileExists(Server.MapPath(FilePath & Rs("FileName"))) Then
						objFSO.DeleteFile(Server.MapPath(FilePath & Rs("FileName")))
					End If
					ViewFilepath = Rs("PreviewImage")
					IF Not IsNull(ViewFilepath) And ViewFilepath<>"" Then
						ViewFilepath=Replace(ViewFilepath,"..","")
						If objFSO.FileExists(Server.MapPath(ViewFilepath)) Then
							objFSO.DeleteFile(Server.MapPath(ViewFilepath))
						End If
					End IF
				End If
				'删除附件表记录
				DvBoke.Execute("Delete From Dv_Boke_Upfile Where ID = " & Rs("ID"))
			End If
			Rs.Close:Set Rs=Nothing
		End If
	Next
	DvBoke.ShowCode(51)
	DvBoke.ShowMsg(2)
	Page_UserFile_Del = DvBoke.InputShowMsg
End Function

'个人博客数据更新或统计
Sub Page_Count()
	Dim PageHtml
	PageHtml = DvBoke.Page_Strings(28).text
	Select Case t
		Case "1"
			Update_UserNickName()
		Case "2"
			Update_UserCatData()
		Case "3"
			Update_UserBokeData()
	Case Else
	End Select
	Response.Write PageHtml
End Sub

'更新用户笔名
Sub Update_UserNickName()
	Dim Sql
	'[Dv_Boke_Topic]
	Sql = "Update [Dv_Boke_Topic] Set UserName = '"&DvBoke.CheckStr(DvBoke.BokeUserName)&"' Where UserID="&DvBoke.BokeUserID
	DvBoke.Execute Sql
	DvBoke.ShowCode("主题信息更新完成!")
	'[Dv_Boke_Upfile]
	Sql = "Update [Dv_Boke_Upfile] Set UserName = '"&DvBoke.CheckStr(DvBoke.BokeUserName)&"' Where UserID="&DvBoke.BokeUserID
	DvBoke.Execute Sql
	DvBoke.ShowCode("上传文件信息更新完成!")
	'[Dv_Boke_Post]
	Sql = "Update [Dv_Boke_Post] Set UserName = '"&DvBoke.CheckStr(DvBoke.BokeUserName)&"' Where UserID="&DvBoke.BokeUserID
	DvBoke.Execute Sql
	DvBoke.ShowCode("回复信息更新完成!")
	DvBoke.ShowMsg(0)
End Sub
'更新栏目数据
Sub Update_UserCatData()
	Dim Rs,Sql,DayStr
	Dim ChildNode,uCatID
	Dim TopicNum,PostNum,TodayNum,LastUpTime
	If Dv_Boke_DataBase = 1 Then
		DayStr = "d"
	Else
		DayStr = "'d'"
	End If
	If DvBoke.BokeCatNode.length>0 Then
		For Each ChildNode In DvBoke.BokeCatNode
			uCatID = DvBoke.CheckNumeric(ChildNode.getAttribute("ucatid"))
			If uCatID>0 Then
				TopicNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Topic] Where CatID = "&uCatID)(0)
				PostNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Post] Where ParentID>0 and CatID = "&uCatID)(0)
				TodayNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Post] Where CatID = "&uCatID&" and DateDiff("&DayStr&",JoinTime,"&bSqlNowString&") = 0")(0)
				
				'Response.Write "Select Top 1 JoinTime From [Dv_Boke_Post] Where CatID = "&uCatID&" order by JoinTime,postid desc"

				Set Rs = DvBoke.Execute("Select Top 1 JoinTime From [Dv_Boke_Post] Where CatID = "&uCatID&" order by JoinTime desc")
				If Rs.Eof Then
					LastUpTime = Now()
				Else
					LastUpTime = Rs(0)
				End If
				Rs.Close
				ChildNode.attributes.getNamedItem("topicnum").text = TopicNum
				ChildNode.attributes.getNamedItem("postnum").text = PostNum
				ChildNode.attributes.getNamedItem("todaynum").text = TodayNum
				ChildNode.attributes.getNamedItem("lastuptime").text = LastUpTime
				DvBoke.Execute("Update Dv_Boke_UserCat Set TopicNum="&TopicNum&",PostNum="&PostNum&",TodayNum="&TodayNum&",LastUpTime = '"&LastUpTime&"' where  uCatID = "&uCatID)
				DvBoke.ShowCode("["&ChildNode.getAttribute("ucattitle")&"] 更新完成:主题共 "&TopicNum&" 篇,评论共 "&PostNum&" 篇,今日帖共 "&TodayNum&" 篇; ")
			End If
		Next
		DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.BokeUserID)
	End If
	DvBoke.ShowCode(DvBoke.BokeCatNode.length&" 个分栏更新完成!")
	DvBoke.ShowMsg(0)
End Sub
'更新个人博客总数据
Sub Update_UserBokeData()
	'[Dv_Boke_User]
	Dim DayStr,Rs
	Dim TopicNum,FavNum,PhotoNum,PostNum,TodayNum,LastUpTime,SpaceSize
	TopicNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Topic] Where sType=0 and UserID = "&DvBoke.BokeUserID)(0)
	FavNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Topic] Where sType=1 and UserID = "&DvBoke.BokeUserID)(0)
	PhotoNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Topic] Where sType=4 and UserID = "&DvBoke.BokeUserID)(0)
	PostNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Post] Where ParentID>0 and BokeUserID = "&DvBoke.BokeUserID)(0)
	If Dv_Boke_DataBase = 1 Then
		DayStr = "d"
	Else
		DayStr = "'d'"
	End If
	TodayNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Post] Where BokeUserID = "&DvBoke.BokeUserID&" and DateDiff("&DayStr&",JoinTime,"&bSqlNowString&") = 0")(0)
	Set Rs = DvBoke.Execute("Select Top 1 JoinTime From [Dv_Boke_Post] Where BokeUserID = "&DvBoke.BokeUserID&" order by JoinTime desc")
	If Rs.Eof Then
		LastUpTime = Now()
	Else
		LastUpTime = Rs(0)
	End If
	DvBoke.ShowCode("博客总数据更新完成:主题共 "&TopicNum&" 篇,收藏共 "&FavNum&" 篇,相册共 "&PhotoNum&" 张,评论共 "&PostNum&" 篇,今日帖共 "&TodayNum&" 篇。 ")
	Dvboke.BokeNode.attributes.getNamedItem("spacesize").text = cCur(Dvboke.BokeNode.getAttribute("spacesize"))
	If Dvboke.BokeNode.getAttribute("spacesize")>0 Then
		SpaceSize = DvBoke.Execute("Select Sum(FileSize) From [Dv_Boke_Upfile] Where BokeUserID = "&DvBoke.BokeUserID)(0)
		If SpaceSize>0 Then
			SpaceSize = Formatnumber((SpaceSize/1024)/1024,2)
			Dvboke.BokeNode.attributes.getNamedItem("spacesize").Text = cCur(DvBoke.System_Setting(15)) - SpaceSize
			If Dvboke.BokeNode.getAttribute("spacesize")<0 Then Dvboke.BokeNode.attributes.getNamedItem("spacesize").text = 0
		End If
		If Dvboke.BokeNode.getAttribute("spacesize") = 0 Then
			DvBoke.ShowCode("您的博客已超出"&DvBoke.System_Setting(15)&"MB,需要更多的空间请与管理员联系!")
		Else
			DvBoke.ShowCode("您的上传空间还有"&Dvboke.BokeNode.getAttribute("spacesize")&"MB。")
		End If
	End If
	DvBoke.Execute("Update Dv_Boke_User set TopicNum="&TopicNum&",FavNum="&FavNum&",PhotoNum="&PhotoNum&",PostNum="&PostNum&",TodayNum="&TodayNum&",LastUpTime='"&LastUpTime&"',spacesize = "&Dvboke.BokeNode.getAttribute("spacesize")&" where UserID="&DvBoke.BokeUserID)
	DvBoke.ShowMsg(0)
End Sub

%>